#set(tableComment = table.getComment())
#set(primaryKeyType = table.getPrimaryKey().getPropertySimpleType())
#set(entityClassName = table.buildEntityClassName())
#set(entityVarName = firstCharToLowerCase(entityClassName))
package #(packageConfig.servicePackage);

import #(serviceConfig.buildSuperClassImport());
import com.mybatisflex.core.paginate.Page;
import #(packageConfig.basePackage).dto.#(entityClassName)PageQueryDTO;
import #(packageConfig.basePackage).dto.#(entityClassName)SaveOrUpdateDTO;
import #(packageConfig.entityPackage).#(table.buildEntityClassName());

/**
 * #(table.getComment()) 业务服务层。
 *
 * @author #(javadocConfig.getAuthor())
 */
public interface #(table.buildServiceClassName()){

    /**
     * 新增#(tableComment)数据
     *
     * @param #(entityVarName)SaveOrUpdateDTO 新增/更新参数对象
     */
    void save(#(entityClassName)SaveOrUpdateDTO #(entityVarName)SaveOrUpdateDTO);

    /**
     * 根据id更新#(tableComment)数据
     *
     * @param #(entityVarName)SaveOrUpdateDTO 保存/更新参数对象
     */
    void updateById(#(entityClassName)SaveOrUpdateDTO #(entityVarName)SaveOrUpdateDTO);

    /**
     * 根据id删除#(tableComment)数据
     *
     * @param id 主键id
     */
    void removeById(#(primaryKeyType) id);

    /**
     * 根据id查询#(tableComment)数据
     *
     * @param id 主键id
     */
    #(entityClassName) getInfo(#(primaryKeyType) id);

    /**
     * 分页查询#(tableComment)
     *
     * @param #(entityVarName)PageQueryDTO 分页参数对象
     */
    Page<#(entityClassName)> page(#(entityClassName)PageQueryDTO #(entityVarName)PageQueryDTO);

}
